package com.lancoo.ccas52.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 教学班
 * </p>
 *
 * @author quin.song
 * @since 2023-01-11
 */
@Data
@Accessors(chain = true)
@TableName("teaching_class")
@ApiModel(value = "TeachingClass对象", description = "教学班")
public class TeachingClass implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "teaching_class_id", type = IdType.AUTO)
    private Long teachingClassId;

    private Integer taskId;

    private String teachingClassName;

    @ApiModelProperty("课程id||环节id")
    private Long courseId;

    @ApiModelProperty("课程名")
    private String courseName;

    @ApiModelProperty("专业")
    private String majorId;

    @ApiModelProperty("学院")
    private String collegeId;

    @ApiModelProperty("教学班容量-学生人数")
    private Integer classNum;

    @ApiModelProperty("对应年级(基础平台使用)")
    private String gradeId;

    @ApiModelProperty("行政班字符串")
    private String toClass;

    @ApiModelProperty("0无需选课 1在线选课;2:分级教学 3:预选教学班")
    private Integer teachingClassType;

    @ApiModelProperty("1课程  2环节")
    private Integer flag;

    @ApiModelProperty("教学班指定教室id 多个逗号分割")
    private String roomId;

    @ApiModelProperty("修读性质：1主修2辅修")
    private Integer studyNature;

    @ApiModelProperty("专业性质，1:公共课，2:专业课")
    private Integer majorProp;

    @ApiModelProperty("所属校区")
    private String campusId;

    private String campusName;

    @ApiModelProperty("1未锁定  2锁定")
    private Integer isLocked;

    @ApiModelProperty("排课状态 1已排（正常）、2已排（冲突）、3待排")
    private Integer scheduleState;

    @ApiModelProperty("分班标识 uuid")
    private String uniqueShiftSign;

    @ApiModelProperty("1单数 2双数")
    private Integer isSingle;

    @ApiModelProperty("是否可用 0 为不可用-已取消 1为可用-正常开班  2未设置")
    private Integer isEnable;

    @TableField(exist = false)
    @ApiModelProperty("选课人数")
    private Integer studentNumber;

    @TableField(exist = false)
    @ApiModelProperty("教师列表")
    private List<Teacher> teachers;

    @TableField(exist = false)
    @ApiModelProperty("参数设置")
    private List<TeachingClassWeek> courseWeeks;

    @TableField(exist = false)
    @ApiModelProperty(value = "讲授教室id")
    private Long lectureRoomId;

    @TableField(exist = false)
    @ApiModelProperty(value = "实验教室id")
    private Long experimentalRoomId;

    @TableField(exist = false)
    @ApiModelProperty(value = "上机教室id")
    private Long computerRoomId;

    @TableField(exist = false)
    @ApiModelProperty(value = "其他教室id")
    private Long otherRoomId;
}
